#!/bin/bash

# 任务提醒功能测试脚本

echo "========================================"
echo "      任务到期提醒功能测试脚本"
echo "========================================"
echo ""

# 检查是否提供了 token
if [ -z "$1" ]; then
    echo "使用方法: ./test-reminder.sh YOUR_JWT_TOKEN"
    echo ""
    echo "示例: ./test-reminder.sh eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
    exit 1
fi

TOKEN=$1
API_URL="http://localhost:3001"

# 计算2分钟后的时间（ISO格式）
DUE_DATE=$(node -e "console.log(new Date(Date.now() + 2*60*1000).toISOString())")

echo "1. 创建测试任务（2分钟后到期）"
echo "   预计完成时间: $DUE_DATE"
echo ""

# 创建任务
RESPONSE=$(curl -s -X POST "$API_URL/todos" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $TOKEN" \
  -d "{
    \"title\": \"测试任务 - 提醒功能测试\",
    \"dueDate\": \"$DUE_DATE\"
  }")

echo "   响应: $RESPONSE"
echo ""

# 提取任务ID
TODO_ID=$(echo $RESPONSE | grep -o '"id":[0-9]*' | grep -o '[0-9]*')

if [ -z "$TODO_ID" ]; then
    echo "❌ 创建任务失败，请检查 Token 是否正确"
    exit 1
fi

echo "✅ 任务创建成功，ID: $TODO_ID"
echo ""
echo "2. 等待提醒..."
echo "   请观察服务端控制台输出"
echo "   约在 2 分钟后会看到提醒消息"
echo ""
echo "3. 提醒消息示例:"
echo "┌─────────────────────────────────────────────────────────────┐"
echo "│                    🔔 任务到期提醒                           │"
echo "├─────────────────────────────────────────────────────────────┤"
echo "│ 任务ID: $TODO_ID"
echo "│ 标题: 测试任务 - 提醒功能测试"
echo "│ 负责人: ..."
echo "│ 创建人: ..."
echo "│ 预计完成时间: $(date -d "$DUE_DATE" '+%Y/%m/%d %H:%M:%S' 2>/dev/null || date -r $(date -jf "%Y-%m-%dT%H:%M:%S" "${DUE_DATE%.*}" "+%s" 2>/dev/null) '+%Y/%m/%d %H:%M:%S' 2>/dev/null || echo "$DUE_DATE")"
echo "│ 剩余时间: X 分钟"
echo "└─────────────────────────────────────────────────────────────┘"
echo ""
echo "4. 清理测试任务（可选）"
echo "   如需删除测试任务，请运行："
echo "   curl -X DELETE \"$API_URL/todos/$TODO_ID\" -H \"Authorization: Bearer $TOKEN\""
echo ""
echo "========================================"
echo "           测试脚本执行完成"
echo "========================================"

